-- @Author: 作者QQ381990860
-- @Date:   2022-05-07 14:23:06
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-08-20 02:53:34
--======================================================================--
-- @作者: QQ381990860
-- @创建时间:   2019-12-03 02:17:19
-- @Last Modified time: 2021-09-08 15:57:14
--======================================================================--
function 道具处理类:法宝合成处理(id,格子)------------------------------完成--
  local 临时格子=分割文本(格子,"*-*")
  local 符石id = {}
  local ndmc = {"玄龟板","千年阴沉木","麒麟血","金凤羽","内丹"}
   for i=1,5 do
    临时格子[i]=临时格子[i]+0
     符石id[i]=玩家数据[id].角色.道具.包裹[临时格子[i]+0]
    if 玩家数据[id].角色.道具.包裹[临时格子[i]]==nil or  玩家数据[id].物品[符石id[i]]==nil  then
        发送数据(玩家数据[id].连接id,7,"#y/数据错误，道具不存在")
      return 0
    elseif 角色处理类:取可用道具格子(玩家数据[id],"包裹") ==0 then
        发送数据(玩家数据[id].连接id, 7, "#y/请在包裹栏留出一个空余的位置!")
        return 0
    elseif 玩家数据[id].物品[符石id[i]].名称 ~= ndmc[i] then
        发送数据(玩家数据[id].连接id, 7, "#y/法宝材料错误!")
        return 0
    else
       道具处理类:RemoveItems(玩家数据[id],临时格子[i],"法宝合成")

    end
   end
  -- local 随机法宝 ={
  -- {"碧玉葫芦","飞剑","拭剑石","金甲仙衣","缚妖索","金钱镖","惊魂铃","嗜血幡","风袋","九黎战鼓","盘龙壁","神行飞剑","汇灵盏","天师符","织女扇","雷兽","迷魂灯","定风珠","幽灵珠","会神珠"},
  -- {"降魔斗篷","附灵玉","捆仙绳","发瘟匣","五彩娃娃","七杀","罗汉珠","赤焰","金刚杵","兽王令","摄魂","神木宝鼎","宝烛","天煞","琉璃灯","云雷鼓"},
  -- {"落雨金钱","缩地尺","缚龙索","鬼泣","月光宝盒","混元伞","无魂傀儡","苍白纸人","通灵宝玉","聚宝盆","影蛊","乾坤玄火塔","无尘扇","无字经","葬龙笛","神匠袍","金箍棒","干将莫邪","救命毫毛","伏魔天书","普渡","镇海珠","奇门五行令","失心钹","五火神焰印","九幽","慈悲","月影","斩魔","金蟾"},
  -- {"舞雪冰蝶","河图洛书","炽焰丹珠","凌波仙符","归元圣印","流影云笛","谷玄星盘","重明战鼓","蟠龙玉璧","翡翠芝兰","落星飞鸿","千斗金樽","宿幕星河", "梦云幻甲","软烟罗锦"}}
   local 随机法宝 ={
  {"碧玉葫芦","飞剑","拭剑石","金甲仙衣","缚妖索","金钱镖","惊魂铃","嗜血幡","风袋","九黎战鼓","盘龙壁","神行飞剑","汇灵盏","天师符","织女扇","雷兽","迷魂灯","定风珠","幽灵珠","会神珠"},
  {"降魔斗篷","附灵玉","捆仙绳","发瘟匣","五彩娃娃","七杀","罗汉珠","赤焰","金刚杵","兽王令","摄魂","神木宝鼎","宝烛","天煞","琉璃灯","云雷鼓"},
  {"落雨金钱","缩地尺","缚龙索","鬼泣","月光宝盒","混元伞","无魂傀儡","苍白纸人","聚宝盆","影蛊","乾坤玄火塔","无尘扇","无字经","葬龙笛","神匠袍","金箍棒","干将莫邪","救命毫毛","伏魔天书","普渡","镇海珠","奇门五行令","失心钹","金蟾"},
  {"舞雪冰蝶","河图洛书","炽焰丹珠","凌波仙符","流影云笛","谷玄星盘","重明战鼓","蟠龙玉璧","翡翠芝兰", "梦云幻甲","软烟罗锦"}}
  local sj = 1
   if 玩家数据[id].角色.等级 > 120 then
    sj = math.random(4)
   elseif 玩家数据[id].角色.等级 > 100 then
    sj = math.random(3)
   elseif  玩家数据[id].角色.等级 > 80 then
    sj = math.random(2)
   end
    self:给予道具(id, 随机法宝[sj][math.random(1,#随机法宝[sj])])
    发送数据(玩家数据[id].连接id,2034,self:索要道具3(id, "包裹"))
 end

function 道具处理类:佩戴法宝(id, 格子, 类型,交换格子)------------------完成--
	local 内容 = {
		格子 = tonumber(格子),
		当前类型 =类型,
		交换格子=tonumber(交换格子),
	 }

 if 内容.格子>=35 then --卸下装备
      if 内容.交换格子~= nil then
      self.临时格子 = 内容.交换格子
      else
      self.临时格子=角色处理类:取可用道具格子(玩家数据[id],内容.当前类型)
      end
      if self.临时格子==0 then
      发送数据(玩家数据[id].连接id,7,"#Y/您的"..内容.当前类型.."已经无法存储更多的道具了")
      发送数据(玩家数据[id].连接id,3006,"66")
      return 0

      else
      玩家数据[id].角色.道具[内容.当前类型][self.临时格子]=玩家数据[id].角色.法宝[内容.格子]
      玩家数据[id].角色.法宝[内容.格子]=0

             if  玩家数据[id].物品[ 玩家数据[id].角色.道具[内容.当前类型][self.临时格子]].Time and 玩家数据[id].物品[ 玩家数据[id].角色.道具[内容.当前类型][self.临时格子]].Time <= os.time() then
                    玩家数据[id].物品[ 玩家数据[id].角色.道具[内容.当前类型][self.临时格子]] =nil
                  玩家数据[id].角色.道具.包裹[ 玩家数据[id].角色.道具[内容.当前类型][self.临时格子]] =nil
                  发送数据(玩家数据[id].连接id, 7, "#y/你的道具已经过期被系统回收")
                end

      角色处理类:刷新装备属性(玩家数据[id])

      发送数据(玩家数据[id].连接id,3006,"66")
      end
  else
    self.道具编号=玩家数据[id].角色.道具[内容.当前类型][内容.格子]
    if 玩家数据[id].物品[self.道具编号] == nil then
        发送数据(玩家数据[id].连接id,7,"#Y/此道具不存在请刷新背包")
       return
    end
    local Name =玩家数据[id].物品[self.道具编号].名称

        self.格子序号=0
        if ItemData[Name].等级  ==1 then
          if 玩家数据[id].角色.法宝[35]==0 then
             self.格子序号=35
          else
            self.格子序号=36
          end
        elseif ItemData[Name].等级  ==2 then
        self.格子序号=36
        elseif ItemData[Name].等级  ==3 then
        self.格子序号=37
        elseif ItemData[Name].等级  ==4 then
        self.格子序号=38
        end
          if self.格子序号==0 then
          发送数据(玩家数据[id].连接id,7,"#Y/此道具无法佩戴")
          发送数据(玩家数据[id].连接id,3006,"66")
          return 0
          elseif ItemData[Name].属性.门派 and ItemData[Name].属性.门派~=玩家数据[id].角色.门派 then
          发送数据(玩家数据[id].连接id,7,"#Y/当前门派无法佩戴此类法宝")
          发送数据(玩家数据[id].连接id,3006,"66")
          return 0
          elseif  ItemData[Name].属性.佩戴等级>玩家数据[id].角色.等级  then
          发送数据(玩家数据[id].连接id,7,"#Y/当前等级无法佩戴此类法宝")
          发送数据(玩家数据[id].连接id,3006,"66")
          return 0
          elseif 玩家数据[id].物品[self.道具编号].灵气 < 0  then
            发送数据(玩家数据[id].连接id,7,"#Y/当前灵气不足无法进行佩戴")
            发送数据(玩家数据[id].连接id,3006,"66")
          return 0
          elseif  not ItemData[Name].属性.佩戴  then
          发送数据(玩家数据[id].连接id,7,"#Y/此法宝不需要佩戴")
          发送数据(玩家数据[id].连接id,3006,"66")
          return 0
         elseif  玩家数据[id].物品[self.道具编号].Time and 玩家数据[id].物品[self.道具编号].Time <= os.time() then
                    玩家数据[id].物品[self.道具编号] =nil
                  玩家数据[id].角色.道具.包裹[内容.格子] =nil
                  发送数据(玩家数据[id].连接id, 7, "#y/你的道具已经过期被系统回收")
                  发送数据(玩家数据[id].连接id, 3007,{格子=内容.格子,数据=玩家数据[id].物品[玩家数据[id].角色.道具.包裹[内容.格子]]})
          else
                self.临时装备=玩家数据[id].角色.法宝[self.格子序号]
                玩家数据[id].角色.法宝[self.格子序号]=self.道具编号
                if self.临时装备~=0 then
                玩家数据[id].角色.道具[内容.当前类型][内容.格子]=self.临时装备
                else
                  玩家数据[id].角色.道具[内容.当前类型][内容.格子]=nil
                end
                角色处理类:刷新装备属性(玩家数据[id])
                 发送数据(玩家数据[id].连接id,3030,1)
                 发送数据(玩家数据[id].连接id,3006,"66")



          end
   end
 end
function 道具处理类:法宝修炼(id,数据)----------------------------------完成--
	self.临时id1 = 玩家数据[id].角色.道具[数据.类型][数据.格子]
	if 玩家数据[id].物品[self.临时id1] == nil or 玩家数据[id].物品[self.临时id1] == 0 then
		发送数据(玩家数据[id].连接id, 7, "#y/你似乎并没有这样的道具")
		return 0
	end
  local Name =玩家数据[id].物品[self.临时id1].名称

    local 消耗经验 =(玩家数据[id].物品[self.临时id1].层数+1)*ItemData[Name].等级*玩家数据[id].角色.等级*1000*(玩家数据[id].物品[self.临时id1].层数+1)
    if 玩家数据[id].角色.当前经验 < 消耗经验 then
    	发送数据(玩家数据[id].连接id, 7, "#y/当前经验不足!")
		return 0
	elseif 玩家数据[id].物品[self.临时id1].最大经验 == "无法提升" then
		    	发送数据(玩家数据[id].连接id, 7, "#y/当前法宝已经修炼满层,已经无法在提升!")
		return 0
	else
		玩家数据[id].物品[self.临时id1].当前经验=玩家数据[id].物品[self.临时id1].当前经验+消耗经验
		玩家数据[id].角色.当前经验=玩家数据[id].角色.当前经验-消耗经验
       发送数据(玩家数据[id].连接id, 7, "#y/你成功为当前法宝注入了经验")
       if 玩家数据[id].物品[self.临时id1].当前经验> 玩家数据[id].物品[self.临时id1].最大经验 then
       	  玩家数据[id].物品[self.临时id1].当前经验=0
       	  玩家数据[id].物品[self.临时id1].层数 = 玩家数据[id].物品[self.临时id1].层数+1
          玩家数据[id].物品[self.临时id1].最大经验 = 取法宝经验( 玩家数据[id].物品[self.临时id1].名称,玩家数据[id].物品[self.临时id1].层数)
          发送数据(玩家数据[id].连接id, 7, "#y/你当前的法宝吸入了你经验后,将等级提升了一级!")
       end
	end
    发送数据(玩家数据[id].连接id,3030,1)
	发送数据(玩家数据[id].连接id, 3006, "66")
 end

function 道具处理类:法宝强化(id,数据)----------------------------------完成--
    self.临时id1 = 玩家数据[id].角色.道具[数据.类型][数据.格子]
    if 玩家数据[id].物品[self.临时id1] == nil or 玩家数据[id].物品[self.临时id1] == 0 then
        发送数据(玩家数据[id].连接id, 7, "#y/你似乎并没有这样的道具")
        return 0
    end

    if 玩家数据[id].物品[self.临时id1].额外技能等级 == nil  then
        发送数据(玩家数据[id].连接id, 7, "#y/非佩戴型或非4J法宝无法强化")
        return 0
    end

    local Name =玩家数据[id].物品[self.临时id1].名称

    local 消耗银子 =(玩家数据[id].物品[self.临时id1].额外技能等级+1)*2500000


     if 玩家数据[id].物品[self.临时id1].额外技能等级 >= 100 then
           发送数据(玩家数据[id].连接id, 7, "#y/当前法宝已经强化至满级")
        return 0
    -- elseif 玩家数据[id].物品[self.临时id1].额外技能等级 >= 50 and  then
           -- 发送数据(玩家数据[id].连接id, 7, "#y/当前法宝已经强化至满级")
        -- return 0
    elseif 玩家数据[id].角色.道具.货币.银子 < 消耗银子 then
        发送数据(玩家数据[id].连接id, 7, "#y/当前银子不足!需要#R/"..消耗银子.."#Y/银子")
        return 0
    else

       if 玩家数据[id].物品[self.临时id1].额外技能等级 >= 50 and 角色处理类:扣除仙玉(玩家数据[id],玩家数据[id].物品[self.临时id1].额外技能等级*500,"法宝强化")==false then
       发送数据(玩家数据[id].连接id, 7, "#y/当前仙玉不足!需要#R/"..(玩家数据[id].物品[self.临时id1].额外技能等级*500).."#Y/仙玉")

        return 0
       end
       角色处理类:扣除银子(玩家数据[id],消耗银子, "法宝强化")

       if math.random(500) <= (499-(玩家数据[id].物品[self.临时id1].额外技能等级*5))  then
       玩家数据[id].物品[self.临时id1].额外技能等级 = 玩家数据[id].物品[self.临时id1].额外技能等级 +1
       发送数据(玩家数据[id].连接id, 7, "#y/强化成功！")
       广播消息(9, "#xt/#y/恭喜玩家#R/"..玩家数据[id].角色.名称.."#Y/强化法宝至#R/"..玩家数据[id].物品[self.临时id1].额外技能等级.."#Y/级成功！")
         if 玩家数据[id].物品[self.临时id1].额外技能等级 == 30  then
           玩家数据[id].物品[self.临时id1].额外技能 = 生成强化额外技能()
           玩家数据[id].物品[self.临时id1].额外技能强化 = 1
           发送数据(玩家数据[id].连接id, 7, "#y/法宝已强化至30级激活随机强化技能#R/"..玩家数据[id].物品[self.临时id1].额外技能)
           广播消息(9, "#xt/#y/恭喜玩家#R/"..玩家数据[id].角色.名称.."#Y/强化法宝至#R/30#Y/级，激活随机强化技能#R/"..玩家数据[id].物品[self.临时id1].额外技能)
         end
       else
       发送数据(玩家数据[id].连接id, 7, "#y/强化失败，再接再厉！")
       end
    end
    发送数据(玩家数据[id].连接id,3030,1)
    发送数据(玩家数据[id].连接id, 3006, "66")
 end
function 道具处理类:法宝洗炼(id,数据)----------------------------------完成--
    self.临时id1 = 玩家数据[id].角色.道具[数据.类型][数据.格子]
    if 玩家数据[id].物品[self.临时id1] == nil or 玩家数据[id].物品[self.临时id1] == 0 then
        发送数据(玩家数据[id].连接id, 7, "#y/你似乎并没有这样的道具")
        return 0
    end

    if 玩家数据[id].物品[self.临时id1].额外技能等级 == nil  then
        发送数据(玩家数据[id].连接id, 7, "#y/非佩戴型法宝无法洗炼")
        return 0
    end

    if 玩家数据[id].角色.洗炼次数 <=0  then
        发送数据(玩家数据[id].连接id, 7, "#y/洗炼次数不足，无法洗炼")
        return 0
    else
       玩家数据[id].角色.洗炼次数 = 玩家数据[id].角色.洗炼次数 -1
       玩家数据[id].物品[self.临时id1].技能词条 = 生成技能词条()
       发送数据(玩家数据[id].连接id, 7, "#y/洗炼成功！恭喜你洗出#R/"..#玩家数据[id].物品[self.临时id1].技能词条.."#Y/技能词条")

       if #玩家数据[id].物品[self.临时id1].技能词条 >=  4 then
          广播消息(9, "#xt/#y/恭喜玩家#R/"..玩家数据[id].角色.名称.."#Y/洗炼法宝时运气爆棚，洗炼出#R/"..#玩家数据[id].物品[self.临时id1].技能词条.."#Y/技能词条！")
       end

    end
    发送数据(玩家数据[id].连接id,3030,1)
    发送数据(玩家数据[id].连接id, 3006, "66")
 end

function 道具处理类:法宝补充灵气(id,数据)----------------------------------完成--
    self.临时id1 = 玩家数据[id].角色.道具[数据.类型][数据.格子]
    if 玩家数据[id].物品[self.临时id1] == nil or 玩家数据[id].物品[self.临时id1] == 0 then
      发送数据(玩家数据[id].连接id, 7, "#y/你似乎并没有这样的道具")
      return 0
    end

      if 玩家数据[id].角色.法宝灵气 < 120 then
        发送数据(玩家数据[id].连接id, 7, "#y/当前剩余法宝灵气不足120!")
         return 0
     else
        local Name =玩家数据[id].物品[self.临时id1].名称
         玩家数据[id].物品[self.临时id1].灵气 =玩家数据[id].物品[self.临时id1].灵气+120/ItemData[Name].等级
         玩家数据[id].角色.法宝灵气=玩家数据[id].角色.法宝灵气-120
            发送数据(玩家数据[id].连接id, 7, "#y/你当前的法宝成功补充了"..(120/ItemData[Name].等级).."点灵气")
    end
    发送数据(玩家数据[id].连接id,3030,1)
    发送数据(玩家数据[id].连接id, 3006, "66")
 end

function 道具处理类:法宝提取灵气(id,数据)----------------------------------完成--
   self.临时id1 = 玩家数据[id].角色.道具[数据.类型][数据.格子]
    if 玩家数据[id].物品[self.临时id1] == nil or 玩家数据[id].物品[self.临时id1] == 0 then
      发送数据(玩家数据[id].连接id, 7, "#y/你似乎并没有这样的道具")
      return 0
    end


      if 玩家数据[id].物品[self.临时id1].灵气 < 1 then
        发送数据(玩家数据[id].连接id, 7, "#y/当前法宝灵气不足1点无法提取")
         return 0
     else

         local Name =玩家数据[id].物品[self.临时id1].名称
         玩家数据[id].角色.法宝灵气 =玩家数据[id].角色.法宝灵气+ItemData[Name].等级*300
         发送数据(玩家数据[id].连接id, 7, "#y/你成功补充了"..(ItemData[Name].等级*300).."点剩余灵气")
          玩家数据[id].物品[self.临时id1] = nil
          玩家数据[id].角色.道具[数据.类型][数据.格子]=nil

      end
    发送数据(玩家数据[id].连接id,3030,1)
    发送数据(玩家数据[id].连接id, 3006, "66")
 end
